'''
还有一种装饰器,是给类使用的,就是在定义类的前面使用
@outer
class Ab():
    pass

给类加装饰器,目的是给类增加属性和方法
'''

'''使用函数装饰器,给类进行装饰
def kuozhan(cls):
    def func2():
        print('我是追加的类方法')

    cls.name='我是追加的类属性'
    cls.func2=func2

    return cls

@kuozhan
class Demo():
    def func():
        print('我是原类中的方法')

Demo.func()
Demo.func2()
print(Demo.name)

'''

'''使用类装饰器  给类进行装饰  增加属性和方法'''
class KuoZhan():
    def __call__(self,cls):
        self.cls=cls

        return self.newfunc

    def newfunc(self):
        self.cls.name='我是在类装饰器中追加的属性'
        self.cls.func2=self.func2

        return self.cls()

    def func2(self):
        print('我是在类装饰器中追加的方法')

@KuoZhan()
class Demo():
    def func(self):
        print ('我是原类中的方法')

zs=Demo()
zs.func()
print(zs.name)
zs.func2()







